home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / metkit / m4coll.h < prev    next >
C/C++ Source or Header  |  1997-06-07  |  2KB  |  73 lines

  1. //    Copyright (C) 1996, 1997 Meta Four Software.  All rights reserved.
  2. //
  3. //  This file contains the declaration of the MFC replacement collections.
  4. //
  5. //! rev="$Id: m4coll.h,v 1.9 1997/06/06 15:08:25 jcw Rel $"
  6.  
  7. #ifndef __M4COLL_H__
  8. #define __M4COLL_H__
  9.  
  10. /////////////////////////////////////////////////////////////////////////////
  11. // Declarations in this file
  12.  
  13.     class c4_BaseArray;
  14.     class c4_PtrArray;
  15.  
  16. /////////////////////////////////////////////////////////////////////////////
  17.  
  18. class c4_BaseArray
  19. {
  20. public:
  21.     c4_BaseArray ();
  22.     ~c4_BaseArray ();
  23.  
  24.     int GetLength() const;
  25.     void SetLength(int nNewSize);
  26.  
  27.     const void* GetData(int nIndex) const;
  28.     void* GetData(int nIndex);
  29.  
  30.     void Grow(int nIndex);
  31.  
  32.     void InsertAt(int nIndex, int nCount);
  33.     void RemoveAt(int nIndex, int nCount);
  34.  
  35. private:
  36.     char* _data;
  37.     int _size;
  38. };
  39.  
  40. class c4_PtrArray
  41. {
  42. public:
  43.     c4_PtrArray ();
  44.     ~c4_PtrArray ();
  45.  
  46.     int GetSize() const;
  47.     void SetSize(int nNewSize, int nGrowBy = -1);
  48.  
  49.     void* GetAt(int nIndex) const;
  50.     void SetAt(int nIndex, void* newElement);
  51.     void*& ElementAt(int nIndex);
  52.  
  53.     int Add(void* newElement);
  54.  
  55.     void InsertAt(int nIndex, void* newElement, int nCount = 1);
  56.     void RemoveAt(int nIndex, int nCount = 1);
  57.  
  58. private:
  59.     static int Off(int n_);
  60.  
  61.     c4_BaseArray _base;
  62. };
  63.  
  64. /////////////////////////////////////////////////////////////////////////////
  65.  
  66. #if q4_INLINE
  67.     #include "m4coll.inl"
  68. #endif
  69.  
  70. /////////////////////////////////////////////////////////////////////////////
  71.  
  72. #endif
  73.